package com.li.shanlin.baseUtils;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * @author liyinlong
 *
 * 2017年3月9日下午3:10:37
 */
public class FacePlusUtils implements ParamsUtils{
	/**
	 * 正向照片寻找大头像
	 * @param url
	 * @param fileUrl
	 */
	public static String faceDetectMess(File targetFile) {
		String url = DETECT_URL + "?api_key=" + API_KEY + "&api_secret=" + API_SECRET;
		return BaseUtils.faceBase(url,targetFile);
    }
	/**
	 * 允许旋转照片寻找大头像
	 * @param url
	 * @param fileUrl
	 */
	public static String faceDetectMessRotation(File targetFile) {
		String url = DETECT_URL + "?api_key=" + API_KEY + "&api_secret=" + API_SECRET + "&multi_oriented_detection=1";
        return BaseUtils.faceBase(url,targetFile);
    }
	/**
	 * 身份证校验
	 * @param url
	 * @param fileUrl
	 */
	public static String faceOcridcard(File targetFile) {
		String url = OCRIDCARD_URL + "?api_key=" + API_KEY + "&api_secret=" + API_SECRET;
		return BaseUtils.faceBase(url,targetFile);
    }
	/**
	 * 身份证校验（带身份合法性验证）
	 * @param url
	 * @param fileUrl
	 */
	public static String faceOcridcardLeg(File targetFile) {
		String url = OCRIDCARD_URL + "?api_key=" + API_KEY + "&api_secret=" + API_SECRET + "&legality=1";
		return BaseUtils.faceBase(url,targetFile);
    }
	/**
	 * 照片比对校验(无源,“meglive”表示本次比对照为从FaceID活体检测SDK MegLive 中生成的最优照片)
	 * @param url
	 * @param fileUrl
	 * @param image_best 最佳图片(sdk生成)
	 * @param delta 校验字符串(sdk生成)
	 */
	public static String faceVerifyPassiveAndMeglive(String uuid,File image_ref1,File image_ref2,File image_ref3,String delta,File image_best) {
		String url = VERIFY_URL + "?api_key=" + API_KEY + "&api_secret=" + API_SECRET + "&comparison_type=0&face_image_type=meglive&uuid="+uuid
				+"&delta=" + delta;
		return BaseUtils.faceBaseComparison(url,image_ref1,image_ref2,image_ref3,image_best,null);
    }
	
	/**
	 * 照片比对校验(无源,“facetoken”表示本次比对时，用户已经调用了FaceID的detect方法从原始图片中检测出人脸)
	 * @param url
	 * @param fileUrl
	 * @param face_token detect中获得
	 */
	public static String faceVerifyPassiveAndFacetoken(String uuid,File image_ref1,File image_ref2,File image_ref3,String face_token) {
		String url = VERIFY_URL + "?api_key=" + API_KEY + "&api_secret=" + API_SECRET + "&comparison_type=0&face_image_type=facetoken"
				+"&uuid="+uuid+"&face_token=" + face_token;
		return BaseUtils.faceBaseComparison(url,image_ref1,image_ref2,image_ref3,null,null);
    }
	
	
	/**
	 * 照片比对校验(无源,“raw_image”表示本次比对时，用户直接上传一张可能包含人脸的图片作为待比对的图片，FaceID将先检测图中人脸然后将人脸与参照脸比对)
	 * @param url
	 * @param fileUrl
	 */
	public static String faceVerifyPassiveAndRawimage(String uuid,File image_ref1,File image_ref2,File image_ref3,File image) {
		String url = VERIFY_URL + "?api_key=" + API_KEY + "&api_secret=" + API_SECRET + "&comparison_type=0&face_image_type=raw_image"
				+"&uuid="+uuid;
		return BaseUtils.faceBaseComparison(url,image_ref1,image_ref2,image_ref3,null,image);
    }
	
	/**
	 * 照片比对校验(有源,“meglive”表示本次比对照为从FaceID活体检测SDK MegLive 中生成的最优照片)
	 * @param url
	 * @param fileUrl
	 */
	public static String faceVerifyActiveAndMeglive(String idcard_name, String card_number, String delta, File image_best) {
		String url = VERIFY_URL + "?api_key=" + API_KEY + "&api_secret=" + API_SECRET + "&comparison_type=1&face_image_type=meglive"
				+"&idcard_name=" + idcard_name + "&idcard_number=" + card_number + "&delta=" + delta;
		return BaseUtils.faceBaseComparison(url,null,null,null,image_best,null);
    }
	/**
	 * 照片比对校验(有源,“facetoken”表示本次比对时，用户已经调用了FaceID的detect方法从原始图片中检测出人脸)
	 * @param url
	 * @param fileUrl
	 */
	public static String faceVerifyActiveAndFacetoken(String idcard_name, String card_number, String face_token) {
		String url = VERIFY_URL + "?api_key=" + API_KEY + "&api_secret=" + API_SECRET + "&comparison_type=1&face_image_type=facetoken"
				+"&idcard_name=" + idcard_name + "&idcard_number=" + card_number+"&face_token=" + face_token;
		return BaseUtils.faceBaseComparison(url,null,null,null,null,null);
		
    }
	/**
	 * 照片比对校验(有源,“raw_image”表示本次比对时，用户直接上传一张可能包含人脸的图片作为待比对的图片，FaceID将先检测图中人脸然后将人脸与参照脸比对)
	 * @param url
	 * @param fileUrl
	 */
	public static String faceVerifyActiveAndRawimage(String idcard_name, String card_number, File image) {
		String url = VERIFY_URL + "?api_key=" + API_KEY + "&api_secret=" + API_SECRET + "&comparison_type=1&face_image_type=raw_image"
				+"&idcard_name=" + idcard_name + "&idcard_number=" + card_number;
		return BaseUtils.faceBaseComparison(url,null,null,null,null,image);
    }
}
